package com.lanswon.qzsmk.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import com.lanswon.qzsmk.vo.ServiceObject;
/**
 * 卡收费细则定义表
 * @author sun
 *
 */
public class FeeRules extends ServiceObject implements Serializable {
	
    /** 卡收费细则ID --uuid */
    private String feeRulesId;

    /** 卡收费规则ID */
    private String feeRuleId;

    /** 收费项目名称 */
    private String feeItemName;

    /** 收费金额 */
    private BigDecimal feeBln;

    /** 优惠类型 */
    private String discountType;

    /** 收费规则类   收费规则类，定义可被调用的类全名及方法名 */
    private String feeRuleClass;

    /** 退费规则类   退费规则名称或表达式 def:打折 def:减免 */
    private String refundRuleClass;

    /** 有效期起始日期  如果此项为空则说明没有起始日期 */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date validStartDate;

    /** 有效期结束日期  如果此项为空说明没有结束日期 */
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date validEndDate;

    /** 是否启用 同一收费规则下的细则只能有唯一启用的细则, 通过启用标识和有效期判断  0未启用1已启用 */
    private String isActivate;

    private static final long serialVersionUID = 1L;

    public String getFeeRulesId() {
        return feeRulesId;
    }

    public void setFeeRulesId(String feeRulesId) {
        this.feeRulesId = feeRulesId == null ? null : feeRulesId.trim();
    }

    public String getFeeRuleId() {
        return feeRuleId;
    }

    public void setFeeRuleId(String feeRuleId) {
        this.feeRuleId = feeRuleId == null ? null : feeRuleId.trim();
    }

    public String getFeeItemName() {
        return feeItemName;
    }

    public void setFeeItemName(String feeItemName) {
        this.feeItemName = feeItemName == null ? null : feeItemName.trim();
    }

    public BigDecimal getFeeBln() {
        return feeBln;
    }

    public void setFeeBln(BigDecimal feeBln) {
        this.feeBln = feeBln;
    }

    public String getDiscountType() {
        return discountType;
    }

    public void setDiscountType(String discountType) {
        this.discountType = discountType == null ? null : discountType.trim();
    }

    public String getFeeRuleClass() {
        return feeRuleClass;
    }

    public void setFeeRuleClass(String feeRuleClass) {
        this.feeRuleClass = feeRuleClass == null ? null : feeRuleClass.trim();
    }

    public String getRefundRuleClass() {
        return refundRuleClass;
    }

    public void setRefundRuleClass(String refundRuleClass) {
        this.refundRuleClass = refundRuleClass == null ? null : refundRuleClass.trim();
    }

    public Date getValidStartDate() {
        return validStartDate;
    }

    public void setValidStartDate(Date validStartDate) {
        this.validStartDate = validStartDate;
    }

    public Date getValidEndDate() {
        return validEndDate;
    }

    public void setValidEndDate(Date validEndDate) {
        this.validEndDate = validEndDate;
    }

    public String getIsActivate() {
        return isActivate;
    }

    public void setIsActivate(String isActivate) {
        this.isActivate = isActivate == null ? null : isActivate.trim();
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", feeRulesId=").append(feeRulesId);
        sb.append(", feeRuleId=").append(feeRuleId);
        sb.append(", feeItemName=").append(feeItemName);
        sb.append(", feeBln=").append(feeBln);
        sb.append(", discountType=").append(discountType);
        sb.append(", feeRuleClass=").append(feeRuleClass);
        sb.append(", refundRuleClass=").append(refundRuleClass);
        sb.append(", validStartDate=").append(validStartDate);
        sb.append(", validEndDate=").append(validEndDate);
        sb.append(", isActivate=").append(isActivate);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }

	public Object setFeeBln(String feeTypeNameByCode) {
		// TODO Auto-generated method stub
		return null;
	}



}